<?php

/**
 * acceso_sist_client actions.
 *
 * @package    comande
 * @subpackage acceso_sist_client
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class acceso_sist_clientActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {


      $request->setRequestFormat('xml');
     //recibir parametros de visual studio

     //validadores
     $email_validador = new sfValidatorEmail();

     //parametros que recibo el .net
     $user_email = $request->getParameter('user');
     $user_pass = $request->getParameter('pass');
    // $token = $request->getParameter('token');

     //instancio una variable de la lib
      $lib = new myLib();

    //  if($token == md5("admin")){ //verifico que el token sea el correcto
          try {

 //valido que el usuario sea un correo electronicO

        try {
            $email_validador->clean($user_email);
           }catch(sfValidatorError $e){
             $this->code = "E0100";
             $this->token = null;
             $this->tiempo = null;
              return sfView::ERROR;
          }
              //verifico que el usuario exista
          $obj_usuario = $lib->executeValida_usuario_monitoreado($user_email);
       if( $obj_usuario != null){

          $user_pass  = md5($user_pass );
        //verifico si la contrase単a es correcta
        if($user_pass == $obj_usuario->getPassword()){
            
            //verificas si el usuario acepto solicitud de grupo

            $new_criteria = new Criteria();
            $new_criteria ->add(UsuariosMonitoreadosPeer::USUARIO_ID, $obj_usuario->getId());
            $new_criteria ->add(UsuariosMonitoreadosPeer::ESTADO, "1");
            $OBJ_USUARIO_MONITOREADO = UsuariosMonitoreadosPeer::doSelectOne($new_criteria);
            
            if(is_object($OBJ_USUARIO_MONITOREADO)){
                  //agrego la fecha y hora de sesion de este usuario
            $fecha = time("d/m/a");
            $new_registro_sesion_clientes = new SessionStartTime();
            $new_registro_sesion_clientes->setUserMonitoreadoId($obj_usuario->getId());
            $new_registro_sesion_clientes->setFechaSesion($fecha);
            $new_registro_sesion_clientes->setObservaciones("Inicio de Sesion");
            $new_registro_sesion_clientes->save();
            
            // modifico el token del usuario
            //llamar metodo de generacion de token
            $token = $lib->executeAutogenerarCadena();
            $token = md5($token);
            $obj_usuario->setToken($token);
            $obj_usuario->save();

            //obtengo el tiempo

            $json = $OBJ_USUARIO_MONITOREADO->getFlagsConfiguracion();
            $json = json_decode($json);
            $this->code = $obj_usuario->getId();
            $this->token = $token;
            $this->tiempo = $json->{'tiempo_muestra'};
                return sfView::SUCCESS;

            }else{
             $this->code = "E0102";
            $this->token = null;
            $this->tiempo = null;
            return sfView::ERROR;

            }



      
        }else{
            $this->code = "E0105";
            $this->token = null;
            $this->tiempo = null;
            return sfView::ERROR;
        }
       }else{
            $this->code = "E0102";
            $this->token = null;
            $this->tiempo = null;
            return sfView::ERROR;
       }
     } catch (Exception $exc) {
         $this->code = "E0104";
         $this->token = null;
         $this->tiempo = null;
         return sfView::ERROR;
     }
   /* }else{
    $this->code = "E0103";
     return sfView::ERROR;
      }
     */

  }

    public function executeCerrarsesion(sfWebRequest $request)
  {
     $request->setRequestFormat('xml');

     //recibo datos de visual estudio
 
     $email_validador = new sfValidatorEmail();

     //parametros que recibo el .net
     $user_email = $request->getParameter('email');
     $token_user = $request->getParameter('token');
      // $token = $request->getParameter('token');

     //instancio una variable de la lib
      $lib = new myLib();

      $new_sesion = new SessionStartTime();
      $id= "17";
      $new_sesion ->setUserMonitoreadoId($id);
      $new_sesion ->setFechaSesion("2012-01-31");
      $new_sesion ->setObservaciones("cerrar sesion!");
      $new_sesion ->save();
      
        

   }

}
